A “web service” is a method of communication between two electronic devices over a network, such as the Internet. Web services provide a software function represented as a network address over the Web, and are designed to support interoperable machine-to-machine interaction over a network. Because organizations use multiple software systems for management, the different software systems often need to exchange data with each other, and web services provide a method of communication that allows two software systems to exchange this data over the network. In a web service environment, the software system that requests data is referred to as a “service requester,” and the software system that processes the request and provides the data is referred to as a “service provider.”
Because multiple software systems for web services may be built using different programming languages, a data exchange is needed that does not depend upon a particular programming language. Since most types of software can interpret Extensible Markup Language (“XML”) tags, web services typically use XML files for the data exchange. Definitions languages for XML files used for web services include the Web Services Description Language (“WSDL”) and the Web Application Description Language (“WADL”).
WSDL is an XML-based interface definition language that is used for describing the functionality offered by a web service. WSDL describes services as collections of network endpoints, or ports. The WSDL specification provides an XML format for documents for this purpose. The abstract definitions of ports and messages are separated from their concrete use or instance, allowing the reuse of these definitions. A port is defined by associating a network address with a reusable binding, and a collection of ports defines a service. Messages are abstract descriptions of the data being exchanged, and port types are abstract collections of supported operations. The concrete protocol and data format specifications for a particular port type constitutes a reusable binding, where the operations and messages are then bound to a concrete network protocol and message format. In this way, WSDL describes the public interface to the web service.
Similarly, WADL is a machine-readable XML description of web services. WADL models the resources provided by a service and the relationships between them. WADL is intended to simplify the reuse of web services that are based on the existing Hypertext Transfer Protocol (“HTTP”) architecture of the Internet. It is platform and language independent and aims to promote reuse of applications beyond the basic use in a web browser.